﻿#pragma once

// Boost Library
#ifndef DISABLE_BOOST_PCH

	#define _SCL_SECURE_NO_DEPRECATE
	#define BOOST_LIB_DIAGNOSTIC

#ifdef _MSC_VER
	#pragma warning(push)
	#pragma conform(forScope, push, forScopeBoost)

	#pragma warning(disable:4996)	// 'function': was declared deprecated
	#pragma warning(disable:4819)	// The file contains a character that cannot be represented in the current code page (number). 
	#pragma warning(disable:4701)	// potentially uninitialized local variable 'result' used
	#pragma warning(disable:4100)	// 'identifier': unreferenced formal parameter
	#pragma warning(disable:4101)	// 'identifier': unreferenced local variable
	#pragma warning(disable:4245)	// 'initializing' : conversion from 'type2' to 'type2', signed/unsigned mismatch
	#pragma warning(disable:4127)	// conditional expression is constant
	#pragma warning(disable:4512)	// assignment operator could not be generated
	#pragma warning(disable:4510)	//'boost::array<T,N>' : default constructor could not be generated
	#pragma warning(disable:4610)	// class 'boost::array<T,N>' can never be instantiated - user defined constructor required
	#pragma warning(disable:4180)	// 应用到函数类型的限定符没有意义；已将其忽略
	#pragma warning(disable:4244)	// warning C4244: 'argument' : conversion from 'int' to 'unsigned short', possible loss of data
#endif

	#include <boost/any.hpp>
	#include <boost/bind.hpp>
	#include <boost/function.hpp>
	#include <boost/lexical_cast.hpp>
	#include <boost/shared_ptr.hpp>
	#include <boost/scoped_ptr.hpp>

	#define BOOST_FILESYSTEM_VERSION 3
	#include <boost/filesystem.hpp>

	#include <boost/thread.hpp>
	#include <boost/thread/barrier.hpp>
	#include <boost/date_time/posix_time/posix_time_types.hpp> //no i/o just types

	#include <boost/array.hpp>
	#include <boost/tokenizer.hpp>
	#include <boost/dynamic_bitset.hpp>
	#include <boost/logic/tribool.hpp>

#ifdef _MSC_VER
	#pragma conform(forScope, pop, forScopeBoost)
	#pragma warning(pop)
#endif

#endif // Boost End
